package com.my.study.common.security;

import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 凭证匹配器
 *
 * <p>专门用于认证流程的凭证校验使用的类型
 *
 * <p>
 * 1、{@link #encode(CharSequence)}用于明文加密
 * 2、{@link #matches(CharSequence, String)}校验明文和密文是否匹配
 *
 *
 * @author Carlos
 * @version 1.0.0
 * @date 2022/1/7 22:23
 */
public class SimplePasswordEncoder implements PasswordEncoder {

    /**
     * 加密
     *
     * @param rawPassword: 明文
     * @return String 加密后的密码
     * @author Carlos
     * @date 2022/1/7 22:28
     */
    @Override
    public String encode(CharSequence rawPassword) {
        return rawPassword.toString();
    }

    /**
     * 匹配
     *
     * @param rawPassword:明文，输入的源密码
     * @param encodedPassword: 密文，存储的密码
     * @return boolean
     * @author Carlos
     * @date 2022/1/7 22:29
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        return rawPassword.toString().equals(encodedPassword);
    }
}
